package com.xd.core.debt.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 分期债权返回vo
 * </p>
 *
 * @author ZCH
 * @since 2025/02/27/10:53
 */
@Data
@Accessors(chain = true)
@ExcelIgnoreUnannotated
public class InstallmentDebtPageVo {

    @ApiModelProperty(value = "	债权id")
    private Integer id;

    @ApiModelProperty(value = "借款合同编号")
    @ExcelProperty(value = "借款合同编号")
    private String contractNo;

    @ApiModelProperty(value = "客户类型 0:个人，1:企业")
    private String principalType;

    @ApiModelProperty(value = "客户类型 0:个人，1:企业")
    @ExcelProperty(value = "客户类型")
    private String principalTypeRemark;

    @ApiModelProperty(value = "客户手机号")
    @ExcelProperty(value = "客户手机号")
    private String phone;

    @ApiModelProperty(value = "借款主体")
    @ExcelProperty(value = "借款主体")
    private String borrowerSubjectName;

    @ApiModelProperty(value = "商业保险金额")
    @ExcelProperty(value = "商业保险金额")
    private BigDecimal insuranceAmount;

    @ApiModelProperty(value = "借款金额")
    @ExcelProperty(value = "借款金额")
    private BigDecimal loanAmount;

    @ApiModelProperty(value = "订单状态  1:还款中 2:已结清 3:已逾期")
    private String status;

    @ApiModelProperty(value = "订单状态  1:还款中 2:已结清 3:已逾期")
    @ExcelProperty(value = "订单状态")
    private String statusRemark;

    @ApiModelProperty(value = "债转状态  1:未转让 2:转让中 3:已转让")
    private String debtConversionStatus;

    @ApiModelProperty(value = "债转状态  1:未转让 2:转让中 3:已转让")
    @ExcelProperty(value = "债转状态")
    private String debtConversionStatusRemark;

    @ApiModelProperty(value = "退保情况 0:部分退保 1:全部退保")
    private String surrenderSituation;

    @ApiModelProperty(value = "退保情况 0:部分退保 1:全部退保")
    @ExcelProperty(value = "退保情况")
    private String surrenderSituationRemark;

    @ApiModelProperty(value = "预付款到账日期")
    @ExcelProperty(value = "预付款到账日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date tradeTime;

    @ApiModelProperty(value = "放款日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", shape = JsonFormat.Shape.STRING, timezone = "GMT+8")
    @ExcelProperty(value = "放款日期")
    @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
    private Date disbursementDate;

    @ApiModelProperty(value = "剩余还款期数")
    @ExcelProperty(value = "剩余还款期数")
    private String remainingRepaymentPeriods;

    @ApiModelProperty(value = "前置服务费")
    @ExcelProperty(value = "前置服务费")
    private BigDecimal preServiceFee;

    @ApiModelProperty(value = "后置服务费")
    @ExcelProperty(value = "后置服务费")
    private BigDecimal postServiceFee;

    @ApiModelProperty(value = "年化利率")
    @ExcelProperty(value = "年化利率")
    private String rate;

    @ApiModelProperty(value = "剩余应还本金")
    @ExcelProperty(value = "剩余应还本金")
    private BigDecimal remainingShouldRepayPrincipal;

    @ApiModelProperty(value = "剩余应还利息")
    @ExcelProperty(value = "剩余应还利息")
    private BigDecimal remainingShouldRepayInterest;

    @ApiModelProperty(value = "逾期利息")
    @ExcelProperty(value = "逾期利息")
    private BigDecimal overdueInterest;

    @ApiModelProperty(value = "违约金")
    @ExcelProperty(value = "违约金")
    private BigDecimal currentRepaymentPenalty;

    @ApiModelProperty(value = "是否代扣(0--代扣,1--不代扣)")
    private String isWithhold;

    @ApiModelProperty(value = "是否代扣(0--代扣,1--不代扣)")
    @ExcelProperty(value = "是否代扣")
    private String isWithholdRemark;

    @ApiModelProperty(value = "原债权方")
    @ExcelProperty(value = "原债权方")
    private String oldOriginalCreditor;

    @ApiModelProperty(value = "现债权方")
    @ExcelProperty(value = "现债权方")
    private String originalCreditor;

    @ApiModelProperty(value = "债权是否释放(0--否,1--是)")
    private String isReleased;

    @ApiModelProperty(value = "进件id")
    private Integer incomingId;

    @ApiModelProperty("企业ID")
    private Integer companyId;

    @ApiModelProperty("放款ID")
    private Integer outId;

    @ApiModelProperty(value = "付款通道(1-通道一，2-通道二)")
    private String payPass;

    @ApiModelProperty(value = "渠道公司")
    @ExcelProperty(value = "渠道公司")
    private String companyName;
}
